<!-- #include file="../DAL/BD.asp" -->
<!-- #include file="../BLL/DV.asp" -->
<!-- #include file="../BLL/Encriptacion.asp" -->

<%
    ' Asigno los valores que llegan por POST
    ContraVieja = ContrasenaCodifica(request.Form("password_actual"))
    ContraNuevaEncriptada = ContrasenaCodifica(request.Form("password_nuevo"))
    Session.Contents.Remove("Error")
	
	' Conecto la base de datos
	set conexion = Conectar()
	
	' Consulto los datos del usuario que desea cambiar la password para poder recalcular los digitos verificadores
	Set resultado = ConsultarBDD("Select * from USUARIOS where Contrasena='" & ContraVieja & "'",conexion)
	
	' Si el recordset vuelve vacio el usuario no existe en la base de datos, caso contrario asigno la informacion a las variables
	if resultado.EOF and resultado.BOF then
			session("Error")= "Hubo un error interno o la contrase&ntilde;a ingresada es incorrecta."
			Response.Redirect("../UI/cambiar_password.asp")
	else
			Apellido=resultado.fields("Apellido")
			Sexo=resultado.fields("Sexo")
			Direccion=resultado.fields("Direccion")
			Localidad=resultado.fields("Localidad")
			Provincia=resultado.fields("Provincia")
			Telefono=resultado.fields("Telefono")
			Mail=resultado.fields("Mail")
			FechaNac=resultado.fields("FechaNac")
			Dni=resultado.fields("Dni")
	end if

	' Calculo los digitos verificadores
	dvh = calcularDVH(session("id_usuario") & session("id_perfil") & session("usuario") & ContraNuevaEncriptada & session("Nombre") & Apellido & Sexo & Direccion & "1" & Localidad & Provincia & Telefono & Mail & FechaNac & Dni)
	EjecutarConsulta "UPDATE USUARIOS SET Contrasena = '" & ContraNuevaEncriptada & "', DVH=" & cint(dvh) &" where id_Usuario='" & Session("id_Usuario") & "'", conexion
	calcularDVV("USUARIOS")
		
	' Desconecto la base de datos
	Desconectar(conexion)
	
	Response.Write("<script language='JavaScript'> window.opener.location.replace('../UI/perfil.asp'); window.close(); </script>")
%>